Title: Freshsales Engineering Onboarding Guide

Congratulations on joining Freshworks and Welcome to Freshsales!

Launched in 2016, Freshsales is a CRM for high-velocity sales teams. We function as a fast-paced startup where the emphasis is on experimenting fast, getting things done with quality and customer empathy,  and releasing often.


Click here for more videos on Freshsales. To know what we have built so far, give a spin of our product by signing up here.


How do we function?

Freshsales engineering team is organized into self-sustained squads that comprise developers, QA engineers, technical lead and tech architect. At present we are operating with 8 squads in the web and 1 squad in mobile. Please go through this to know more about your colleagues and meet with them over coffee to chat about their stories of Freshsales so far.


General onboarding checklist

  1. By reading this, you should have got access to confluence. Else raise access at https://lighthouse.freshservice.com/support/catalog/items/182
  2. Get access to the following by raising a ticket.

    Portal/ToolWhere to RaiseDetails
    Freshreleasehttps://lighthouse.freshservice.com/support/catalog/items/201



    For Engineers (Devs and QA), "Editor" access would be enough for attaining the needed things in the portal.

    Github CoC

    Kindly take the COC test from here and score above 60 and then raise a request - Code of Conduct Questionnaire Link: https://forms.microsoft.com/Pages/ResponsePage.aspx?id=RhR5inQ_r0G-fUcOL5hSdVJlhmzI5CFErzgRvQDN4rZUM1VSVkZJTzczR1ZJQTlGUUsyRDZPOU9FVi4u

    If you score less than 60, send an email to help@freshworks.com with the subject as “Code of Conduct - GITHUB Re-Test” to reattempt it.

    Go through the following document for password guidelines:

    Code of Conduct - GitHub

    Githubhttps://lighthouse.freshservice.com/support/catalog/items/1098

    We have a different set of requests related to Github

    1. New User request:
    This will allow people to join the organization. For that, a certain checklist has to be met(mandatorily),

    • A Github profile needs to be created with Freshworks email*
    • Github handle should be Firstname-Lastname as per email id or GitHub handle name already taken use firstname-lastname-E<<your employee id>>(eg: Roshni-Dhurv-E3790)*
    • Make your email as Public on GitHub profile by following this KB
    • 2FA is enabled*
    • Profile picture needs to be updated*
    • Then raise a request for "Org access for User" as in the below screenshot.
    • Note: Please make sure you raise request with Target Org Name as "FreshDesk" and not FreshSales. 
    • Once this request is raised, an email invitation will be sent to join Freshworks Org and the User needs to authenticate that from the Company laptop.
    • Once the User is added to Org, raise request for "Repo Access for User (Add or Modify)" from the same link(mentioned in the left).
      Below screenshot is for reference.

    2. New Repo Request:
         This will help to create New Repo to the Organization.

    3. Write access:
        To get the write access to other repositories

    4. Others:
        This will address the other issues/ bot related and admin related things

    Access to reposhttps://lighthouse.freshservice.com/support/catalog/items/1098

    Raise write access to the following repositories. We can raise request to access multiple repos by providing , separated values. (The field to enter the repositories might restrict the number of characters to be entered. Have to create multiple tickets to include all repos mentioned here)

    https://github.com/freshdesk/freshsales,
    https://github.com/freshdesk/freshsales-webframe-automation,
    https://github.com/freshdesk/webframe,
    https://github.com/freshdesk/freshsales-marketplace
    https://github.com/freshdesk/freshsales-recipes
    https://github.com/freshdesk/cpq

    https://github.com/freshdesk/cpqgrpc,
    https://github.com/freshdesk/freshsales-ember-addons,
    https://github.com/freshdesk/unified-navbar-360,
    https://github.com/freshdesk/trinity,
    https://github.com/freshdesk/trinity-recipes,

    https://github.com/freshdesk/opentelemetry-ruby,

    https://github.com/freshdesk/central-publisher,

    https://github.com/freshdesk/prometheus_exporter,

    https://github.com/freshdesk/freshdesk-multitenant,

    https://github.com/freshdesk/freshdesk-subscription,

    https://github.com/freshdesk/freshdesk_authority,

    https://github.com/freshdesk/freshsales-ruby-sdk,

    https://github.com/freshdesk/freshdesk-features,

    https://github.com/freshdesk/record_not_unique,

    https://github.com/freshworks/deadlock_retry,

    https://github.com/freshworks/rate-limiting,

    https://github.com/freshdesk/freshcaller-ruby-sdk,

    https://github.com/freshdesk/central-publisher,

    https://github.com/freshdesk/formserv-gem

    Freshdeskhttps://lighthouse.freshservice.com/support/catalog/items/135Request for Freshsales support
    Role: Developers, QA and Designers
    Group: Freshsales - Core
    Haystack(server)https://devops.freshservice.com/support/catalog/items/181

    For all regions

    For both

    • 'Trigmetry / Sherlock' - used for metrics - editor access
    •  'Haystack' used for logs - user access.
    Github DesktopDownload from Github website.

    Freshsales runway CI

    https://lighthouse.freshservice.com/support/catalog/items/187

    Runway URL: https://freshsales.runwayci.com

    Privilege: 'Execute'

    Sentryhttps://lighthouse.freshservice.com/support/catalog/items/300


    IDE
    Pick an IDE of your choice. e.g. Sublime text, Atom, VS Code, RubyMine. If it's paid, please raise a request in the lighthouse portal.
    Admin portal accesshttps://lighthouse.freshservice.com/support/catalog/items/663

    Production - https://admin.freshsales.io/ (Background verification required)
    Staging - https://admin.fsales.io/ (Access given by squad members itself)

    Read more: Freshsales Admin Console and Supreme Console

    VPN access https://lighthouse.freshservice.com/support/catalog/items/64
    Dev portal accesshttps://freshsalesdev.freshdesk.com/

    Please reach out to your engineering manager

    Ruby mine accesshttps://lighthouse.freshservice.com/support/catalog/items/344Create a ticket for license for RubyMine IDE.

    AWS Access

    (optional)

    https://devops.freshservice.com/support/catalog/items/132
    1. Environment: Staging 
    2. Name : freshsales-staging
    3. Group Name : aws-fsals-App-Ops
    Baikalhttps://lighthouse.freshservice.com/support/catalog/items/838.

    Refer this document on how to raise ticket and access Baikal Freshsales - Baikal 2.0 : Access & Usage

    SupremeOne


    https://devops.freshservice.com/support/catalog/items/97

    Access Group: core_team

    Role name: deployments

    Lattice https://lighthouse.freshservice.com/support/catalog/items/543Lattice is our Performance review tool. Use the link to raise access for the same 
    Distribution List Subscriptionhttps://lighthouse.freshservice.com/support/catalog/items/1451If you want to be part of any email DL, raise a request through the link.
  3. Get added to following by raising a ticket in this link by selecting Function as 'IT', If you get added in any of the below mailing lists, Automatically you become part of freshsales-team@freshworks.com
    1. freshsales-eng@freshworks.com(if you are a Developer)
    2. freshsales-qa@freshworks.com(if you are a QA engineer), Automatically you become part of freshsales-eng mailing list
  4. Get added to the following by talking to your buddy or manager
    1. Freshsales Team slack channel - Slack channel for your team/squad/pod. Your EM/Mentor can add here.
    2. Freshsales QA slack channel(if you are a QA engineer) - https://fwbuzz.slack.com/archives/GUHUYRRTJ
    3. Freshsales Engineering - https://fwbuzz.slack.com/archives/CU551HPMY
    4. Other relevant slack channels - fsa-infra, fsa-deployments, fsa-devops-team


How do we communicate?

We use Slack to communicate internally for one to one conversation. We love for you to ask questions, now or ever. There are no silly questions. Ask in email, team channel, personal DM or in person. We believe in open, transparent, and frequent communication. We encourage asynchronous communication and reduce as many meetings as possible. 

Please read this - Effective Maker Schedule Days and No Meeting Times


How do we build a product?

On a higher level, we follow the below process largely.

More information on how we build product is documented here - 


How do we develop and deploy?


Note: Better representation is a few days away (smile)


Quick links

Expense management - Fyle - https://lighthouse.freshservice.com/support/catalog/items/180

Payroll - https://www.allsechro.com/Freshworkspayroll/Common/Home.aspx

Internal Helpdesk - https://lighthouse.freshservice.com/support/home/

Our products - https://lighthouse.freshservice.com/support/home?!company

Freshworks Culture Code - https://lighthouse.freshservice.com/support/home?!culture

Freshworks Policies - https://lighthouse.freshservice.com/support/solutions/23561

Freshworks people dashboard - https://tgif.freshworks.com/dashboard/me

Freshworks Workplace - https://freshworks.workplace.com/

PM DL - fsales-pm@freshworks.com

Designers DL - freshsales-design@freshworks.com 

PeopleHub - https://fa-etju-saasfaprod1.fa.ocs.oraclecloud.com/fscmUI/faces/FuseWelcome


Tools & Technologies to Learn 


Tool/Technology

Link

Tool/Technology

Link

Ruby

https://zetcode.com/lang/rubytutorial/

https://ruby-doc.com/docs/ProgrammingRuby/


Ruby on Rails

https://guides.rubyonrails.org/v4.2/

https://www.freecodecamp.org/news/lets-create-an-intermediate-level-ruby-on-rails-application-d7c6e997c63f/

https://www.udemy.com/course/the-complete-ruby-on-rails-developer-course/

GitHub

https://www.atlassian.com/git/tutorials

https://docs.github.com/en/get-started

MySQL

https://www.w3schools.com/MySQL/default.asp

https://dev.mysql.com/doc/refman/8.0/en/tutorial.html

Elasticsearch

https://tsh.io/blog/elasticsearch-tutorial/

https://medium.com/tech-explained/getting-hands-on-with-elasticsearch-9969a2894f8a

Redis

https://www.tutorialspoint.com/redis/index.htm

https://www.rubyguides.com/2019/04/ruby-redis/

Ember
CSS

https://www.w3schools.com/css

JavaScript

https://www.w3schools.com/js

https://javascript.info

HTML 5

https://www.w3schools.com/html


jQueryhttps://www.w3schools.com/jquery/
Seleniumhttps://confluence.freshworks.com/download/attachments/223798247/TheSeleniumGuidebookRubyEdition2.0.0%20%281%29.pdf?version=1&modificationDate=1568901229047&api=v2
WebFrameDocumentation

Domain Specific Onboarding Guide

Developer Onboarding Guide

SDET Onboarding Guide

Engineering Manager Onboarding Guide